package com.cgnpc.cuddemo.funcInstance.application;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.cgnpc.cuddemo.funcInstance.domain.CudWin;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;
/******************************
 * 用途说明: CudWin 接口
 * 作者姓名: PXMWRYA
 * 创建时间: 2019/11/20 14:39
 ******************************/
public interface ICudWinApplication {
    /**********************************
    * 用途说明: 添加中奖表数据
    * 参数说明 params
    * 返回值说明:
    ***********************************/
    boolean insertWin(String params) throws Exception;

    /**********************************
    * 用途说明: 添加中奖信息  不走流程
    * 参数说明 params
    * 返回值说明:
    ***********************************/
    boolean addWin(String params) throws Exception;

    /**********************************
    * 用途说明: 保存兑奖信息
    * 参数说明 params
    * 返回值说明:
    ***********************************/
    boolean saveWin(String params);

    /**********************************
    * 用途说明: 获取得奖列表
    * 参数说明 params
    * 返回值说明:
    ***********************************/
    IPage<CudWin> getWinList(String params);

    /**********************************
    * 用途说明: 逻辑删除操作
    * 参数说明 winId
    * 返回值说明:
    ***********************************/
    boolean delWin(String winId);

    /**********************************
    * 用途说明: 通过流程实例的procGuid 来匹配 信息
    * 参数说明 id
    * 返回值说明:
    ***********************************/
    CudWin getWinDetailsByProcInfo(String id);

    /**********************************
    * 用途说明: 改变中奖状态
    * 参数说明 id
    * 返回值说明:
    ***********************************/
    boolean updateCudWinState(String id);

    /**********************************
    * 用途说明: 批量删除
    * 参数说明 params
    * 返回值说明:
    ***********************************/
    boolean batchDelWin(String params);

    /**********************************
    * 用途说明: 删除业务数据以及草稿
    * 参数说明 paramsMap
    * 返回值说明:
    ***********************************/
    boolean deleteWinAndMyDraft(Map paramsMap) throws Exception;

    /**********************************
    * 用途说明: 修改业务数据以及草稿
    * 参数说明 paramsMap
    * 返回值说明:
    ***********************************/
    boolean saveWinAndDraft(Map paramsMap) throws Exception;

    /**********************************
    * 用途说明: 提交业务数据以及草稿  存在草稿的情况  业务数据改变状态即可
    * 参数说明 params
    * 返回值说明:
    ***********************************/
    boolean commitWinAndDraft(String params) throws Exception;

    /**********************************
    * 用途说明: 导出业务Excel数据
    * 参数说明 paramsMap
    * 返回值说明:
    ***********************************/
    void exportWinExcel(Map paramsMap) throws Exception;

    /**********************************
    * 用途说明: 获取列表数据  不分页  但有查询条件
    * 参数说明 paramsMap
    * 返回值说明:
    ***********************************/
    List<CudWin> getWinListNoPage(Map paramsMap) throws Exception;

    /**********************************
    * 用途说明: 从选中的数据 查询excel
    * 参数说明 paramsMap
    * 返回值说明:
    ***********************************/
    List<CudWin> getWinListByWins(Map paramsMap) throws Exception;

    /**********************************
    * 用途说明: 上传Excel文件  批量新增
    * 参数说明 file
    * 返回值说明:
    ***********************************/
    Boolean upExcelFile(MultipartFile file) throws Exception;

    /**********************************
     * 用途说明: 下载导入模板
     * 参数说明 file
     * 返回值说明:
     ***********************************/
    void uploadTemp() throws Exception;
}